/**
 * @content 同步数据库参数功能组件
 * @author  2019-09-25
 */
import { NativeModules } from 'react-native';

let SDBP = NativeModules.JSSyncDataBaseParmeters;

import SyncLayerOption from './SyncLayerOption.js';

/**
 * @class SyncDataBaseParmeters
 * @description 同步数据库参数
 */
export default class SyncDataBaseParmeters {
  /**
   * 构造一个新的 SyncDataBaseParmeters 对象。
   * @memberOf SyncDataBaseParmeters
   * @returns {Promise.<SyncDataBaseParmeters>}
   */
  async createObj() {
    try {
      var { SyncDataBaseParmetersId } = await SDBP.createObj();
      var syncDataBaseParmeters = new SyncDataBaseParmeters();
      syncDataBaseParmeters._MGSyncDataBaseParmetersId = SyncDataBaseParmetersId;
      return syncDataBaseParmeters;
    } catch (e) {
      console.error(e);
    }
  }

  /**
   * 移除图层
   * @memberOf SyncDataBaseParmeters
   * @param {int} layerID 图层ID
   * @returns {Promise.<void>}
   */
  async removeLayer(strLayerID) {
    try {
      await SDBP.removeLayer(this._MGSyncDataBaseParmetersId, strLayerID);
    } catch (e) {
      console.error(e);
    }
  }

  /**
   * 获取同步图层参数
   * @memberOf SyncDataBaseParmeters
   * @return {Promise.List<SyncLayerOption>} 同步图层选项
   */
  async getLayerOptions() {
    try {
      var objArr = [];
      let { SyncLayerOptionArr } = await SDBP.getLayerOptions(
        this._MGSyncDataBaseParmetersId
      );
      for (var i = 0; i < SyncLayerOptionArr.length; i++) {
        var syncLayerOption = new SyncLayerOption();
        syncLayerOption._MGSyncLayerOptionId = SyncLayerOptionArr[i];
        objArr.push(syncLayerOption);
      }
      return objArr;
    } catch (e) {
      console.error(e);
    }
  }
}
